ass Solution {
        string letter = "abcdefghi"
            pqrstuvwxyz";
    public:
            int ladderLength(string begin, string end, vector<string>& word)
            {
                        int n = word.size();
                                vector<bool> vis(n, false); // word中的单词是否被访问过
                                        unordered_map<string, int> hash; // 每个单词的下标
                                                for (int i = 0; i < n; i++) hash[word[i]] = i;
                                                        if (hash.count(begin) > 0) vis[hash[begin]] = true; // star存在就设为true
                                                                queue<string> q;
                                                                        q.push(begin);
                                                                                int ret = 1;
                                                                                        while (q.size())
                                                                                        {
                                                                                                        ret++;
                                                                                                                    int sz = q.size();
                                                                                                                                while (sz--)
                                                                                                                                {
                                                                                                                                                    string s = q.front();
                                                                                                                                                                    q.pop();
                                                                                                                                                                                    for (int i = 0; i < s.size(); i++)
                                                                                                                                                                                    {
                                                                                                                                                                                                            for (int j = 0; j < letter.size(); j++)
                                                                                                                                                                                                            {
                                                                                                                                                                                                                                        if (s[i] == letter[j]) continue; // 只有要替换的单词与letter不同才行
                                                                                                                                                                                                                                                                string x = s; // 不可以更改s
                                                                                                                                                                                                                                                                                        x[i] = letter[j];
                                                                                                                                                                                                                                                                                                                if (hash.count(x) > 0 && !vis[hash[x]]) // 单词在word中存在，并且没有访问过
                                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                                                                if (x == end) return ret; // 如果已经找到了就返回
                                                                                                                                                                                                                                                                                                                                                                            q.push(x);
                                                                                                                                                                                                                                                                                                                                                                                                        vis[hash[x]] = true;
                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                            }
                                                                                                                                                                                                                            
                                                                                                                                                                                    }
                                                                                                                                                                                                
                                                                                                                                }
                                                                                                                                        
                                                                                        }
                                                                                                return 0; // 如果变不了就返回0
                                                                                                    
            }
};"
}
